module.exports = app => {

  const {
    router,
    controller,
  } = app;

  console.log('debug: manageRouter');

  // 后台管理界面
  router.get([ '/admin/:page', '/admin/:page/:page1', '/admin/:page/:page1/:id' ], controller.manage.adminUser.dashboard);

  // 管理员退出
  router.get('/manage/logout', controller.manage.adminUser.logOutAction);

  // 获取管理员信息
  router.get('/manage/getUserSession', controller.manage.adminUser.getUserSession);

  // 获取后台基础信息
  router.get('/manage/getSitBasicInfo', controller.manage.adminUser.getBasicSiteInfo);

  /**
     * 管理员管理
     */
  router.get('/manage/adminUser/getList', controller.manage.adminUser.list);

  router.get('/manage/adminUser/getOne', controller.manage.adminUser.getOne);

  router.post('/manage/adminUser/addOne', controller.manage.adminUser.create);

  router.post('/manage/adminUser/updateOne', controller.manage.adminUser.update);

  router.get('/manage/adminUser/deleteUser', controller.manage.adminUser.removes);


  /**
     * 角色管理
     */
  router.get('/manage/adminGroup/getList', controller.manage.adminGroup.list);

  router.get('/manage/adminGroup/getOne', controller.manage.adminGroup.getOne);

  router.post('/manage/adminGroup/addOne', controller.manage.adminGroup.create);

  router.post('/manage/adminGroup/updateOne', controller.manage.adminGroup.update);

  router.get('/manage/adminGroup/deleteGroup', controller.manage.adminGroup.removes);


  /**
     * 资源管理
     *
     */

  router.get('/manage/adminResource/getList', controller.manage.adminResource.list);

  router.get('/manage/adminResource/getOne', controller.manage.adminResource.getOne);

  router.post('/manage/adminResource/addOne', controller.manage.adminResource.create);

  router.post('/manage/adminResource/updateOne', controller.manage.adminResource.update);

  router.post('/manage/adminResource/updateParentId', controller.manage.adminResource.updateParentId);

  router.get('/manage/adminResource/deleteResource', controller.manage.adminResource.removes);

  router.get('/manage/adminResource/getListByPower', controller.manage.adminResource.listByPower);


  /**
     * 系统配置
     * 此api名称尽量不要改
     */

  router.get('/manage/systemConfig/getConfig', controller.manage.systemConfig.list);

  router.post('/manage/systemConfig/updateConfig', controller.manage.systemConfig.update);


  /**
     * 插件管理
     */

  //  获取已安装插件列表
  router.get('/manage/plugin/getList', controller.manage.plugin.list);

  //  安装
  router.get('/manage/plugin/installPlugin', controller.manage.plugin.installPlugin);

  // 卸载
  router.get('/manage/plugin/unInstallPlugin', controller.manage.plugin.unInstallPlugin);

  // 升级
  router.get('/manage/plugin/updatePlugin', controller.manage.plugin.updatePlugin);

  // 启用插件
  router.post('/manage/plugin/enablePlugin', controller.manage.plugin.enablePlugin);

  // 心跳
  router.get('/manage/plugin/pluginHeartBeat', controller.manage.plugin.pluginHeartBeat);

  // 获取插件市场列表
  router.get('/manage/plugin/getPluginShopList', controller.manage.plugin.getPluginShopList);

  // 获取插件市场插件详情
  router.get('/manage/plugin/getOneShopPlugin', controller.manage.plugin.getPluginShopItem);

  // 预创建订单
  router.post('/manage/plugin/createInvoice', controller.manage.plugin.createInvoice);

  // 订单校验
  router.post('/manage/plugin/checkInvoice', controller.manage.plugin.checkInvoice);

  /**
     * 钩子管理
     */
  router.get('/manage/hook/getList', controller.manage.hook.list);

  router.get('/manage/hook/getOne', controller.manage.hook.getOne);

  router.post('/manage/hook/addOne', controller.manage.hook.create);

  router.post('/manage/hook/updateOne', controller.manage.hook.update);

  router.get('/manage/hook/deleteUser', controller.manage.hook.removes);


  // ManageRouters

};
